package cn.sh.yhk.acl.service;

import cn.sh.yhk.acl.po.PermissionPo;
import cn.sh.yhk.acl.po.RolePo;
import cn.sh.yhk.acl.po.UserPo;
import cn.sh.yhk.acl.vo.UserInfoPageVo;
import cn.sh.yhk.acl.vo.UserInfoVo;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;
import java.util.Map;

public interface UserInfoService {

    IPage<UserInfoVo> selectUserInfoPage(UserInfoPageVo userInfoPageVo);

    Integer register(UserInfoVo userInfoVo);

    Integer addUser(UserInfoVo vo);

    Integer delUser(Integer userId);

    Integer updateUser(UserInfoVo userInfoVo);

    UserPo selectUserByUserId(Integer userId);

    UserInfoVo selectUserByUserName(String username);

    UserInfoVo selectUserWithRoleById(Integer userId);

    Integer updateUserPassword(Integer userId, String password);

    List<RolePo> selectRoleByUserId(Integer userId);

    Boolean lockUser(Integer userId);

    //role
    Integer addRole(RolePo rolePo);

    Integer updateRole(RolePo rolePo);

    Integer delRole(Integer id);

    RolePo getRoleById(Integer id);

    List<RolePo> getRoleList();

    //permission
    Integer addPermission(PermissionPo permissionPo);

    Integer updatePermission(PermissionPo permissionPo);

    Integer delPermission(Integer id);

//    Map<String,List<PermissionPo>> getPermissionListByRoleId(Integer RoleId);


}
